AI Cursor
AI Cursor is a web app that lets architects, engineers, and project consultants review building plans and documents faster by layering AI intelligence directly on top of them.
Core trick
Compares drawing versions and overlays change highlights and AI-flagged issues directly on PDF plans.
Description
AI Cursor is a web app that lets architects, engineers, and project consultants review building plans and documents faster by layering AI intelligence directly on top of them. Users can upload drawings or PDFs, then see instant, non-intrusive highlights of changes between versions, links to relevant specifications, and automatic detection of potential issues — all explained in either technical or plain language depending on the role. The tool keeps familiar markup and commenting features, but adds AI-powered overlays, quick answers to “what changed?” or “is this compliant?”, and smart suggestions for notes or approvals, helping teams catch problems early, communicate clearly, and cut review time dramatically.
README excerpt
# Auth App (React + Vite)
Simple auth UI with Google and Email/Password using Firebase and shadcn-style components.
## Setup
1. Copy `.env.example` to `.env.local` and fill Firebase values.
2. In Firebase Console, create a Web App and enable Authentication providers (Google, Email/Password). Add your app origin to Authorized domains.
3. Install dependencies and start:
```
pnpm i
pnpm dev
```
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
## Expanding the ESLint configuration
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
```js
export default tseslint.config([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
// Other configs...
// Remove tseslint.configs.recommended and replace with this
...tseslint.configs.recommendedTypeChecked,
// Alternatively, use this for stricter rules
...tseslint.configs.strictTypeChecked,
// Optionally, add this for stylistic rules
...tseslint.configs.stylisticTypeChecked,
// Other configs...