Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .env.example

This file was deleted.

45 changes: 45 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: CI

on:
push:
branches:
- main
pull_request:
types: [opened, synchronize]

jobs:
check-and-test:
name: Check and Test
timeout-minutes: 15
runs-on: ubuntu-latest
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
steps:
- name: Check out code
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'npm'

- name: Install dependencies
run: npm install

# Check: https://github.com/vercel/next.js/issues/53959
# - name: Check types
# run: npm run check-types

- name: Check linting
run: npm run lint

- name: Run tests
run: npm run test


# automated-testing:
# name: E2E Testing
27 changes: 17 additions & 10 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,29 +1,26 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
node_modules
.pnp
.pnp.js
.yarn/install-state.gz

# testing
/coverage
coverage

# next.js
/.next/
/out/
.next/
out/

# production
/build
build
dist

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# local env files
.env*.local
Expand All @@ -35,3 +32,13 @@ yarn-error.log*
# typescript
*.tsbuildinfo
next-env.d.ts

# turbo
.turbo

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "always",
"source.fixAll.eslint": "never"
"source.fixAll.biome": "always"
}
}
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,15 @@

The main goal is to provide a better way to explore tech companies in Portugal.

## Monorepo structure 📦

- `apps/web`: The main web app
- `tooling/typescript`: TypeScript configuration

## Features 🚀

- List of tech companies in Portugal synced with the opensource [tech-companies-in-portugal](https://github.com/marmelo/tech-companies-in-portugal) repository
- Search capabilities
- Fast search capabilities
- SEO friendly
- Responsive design

Expand All @@ -19,6 +24,8 @@ The main goal is to provide a better way to explore tech companies in Portugal.
- [Biome](https://biomejs.dev/) - Formatting and linting
- [Motion](https://motion.dev/) - Animation library
- [Nuqs](https://nuqs.47ng.com) - URL query state management (client and server support + some other cool features out of the box)
- [Turbo](https://turbo.build/) - Monorepo build system
- [Vercel](https://vercel.com/) - Hosting and CI/CD

## How to contribute 🤝

Expand Down
File renamed without changes.
File renamed without changes.
55 changes: 55 additions & 0 deletions apps/web/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"name": "@tech-companies-portugal/web",
"private": true,
"version": "0.0.0",
"scripts": {
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start",
"lint": "biome check .",
"format": "biome format --write .",
"check-types": "npm run ts:version && tsc --noEmit",
"clean": "git clean -xdf .next .turbo node_modules",
"ts:version": "tsc --version",
"test": "echo 'No tests to run'"
},
"dependencies": {
"@radix-ui/react-collapsible": "1.1.2",
"@radix-ui/react-label": "2.1.1",
"@radix-ui/react-select": "2.1.4",
"@radix-ui/react-slot": "1.1.1",
"cheerio": "1.0.0-rc.12",
"class-variance-authority": "0.7.0",
"clsx": "2.1.0",
"date-fns": "3.3.1",
"geist": "1.3.1",
"lucide-react": "0.469.0",
"motion": "11.17.0",
"next": "15.1.4",
"nuqs": "2.3.1",
"react": "19.0.0",
"react-dom": "19.0.0",
"react-type-animation": "3.2.0",
"recharts": "2.15.0",
"sharp": "0.33.2",
"slugify": "1.6.6",
"tailwind-merge": "2.2.1",
"tailwindcss-animate": "1.0.7",
"use-debounce": "10.0.4"
},
"devDependencies": {
"@tech-companies-portugal/typescript": "*",
"@types/node": "^20",
"@types/react": "19.0.2",
"@types/react-dom": "19.0.2",
"autoprefixer": "^10.0.1",
"postcss": "^8",
"tailwindcss": "^3.3.0",
"typescript": "^5"
},
"overrides": {
"@types/react": "19.0.2",
"@types/react-dom": "19.0.2",
"react-is": "19.0.0"
}
}
File renamed without changes.
File renamed without changes
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default function AppLayout({ children }: LayoutProps) {

const AppLoading = () => {
return (
<div className="relative mx-auto flex w-full max-w-5xl p-3 mt-4 flex flex-1 flex-col gap-6 md:flex-row">
<div className="relative mx-auto flex w-full max-w-5xl p-3 mt-4 flex-1 flex-col gap-6 md:flex-row">
<div className="flex h-fit shrink-0 flex-col gap-4 md:flex-col-reverse">
<Skeleton className="h-52 w-full rounded-md md:w-60" />
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export async function loadGoogleFont(font: string, text: string) {
/src: url\((.+)\) format\('(opentype|truetype)'\)/,
);

if (resource) {
if (resource?.[1]) {
const response = await fetch(resource[1]);
if (response.status == 200) {
return await response.arrayBuffer();
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
17 changes: 17 additions & 0 deletions apps/web/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"extends": "@tech-companies-portugal/typescript/nextjs.json",
"compilerOptions": {
"plugins": [
{
"name": "next"
}
],
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
},
"target": "ES2017"
},
"include": ["next-env.d.ts", ".next/types/**/*.ts", "**/*.ts", "**/*.tsx"],
"exclude": ["node_modules"]
}
3 changes: 2 additions & 1 deletion biome.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
"enabled": true,
"rules": {
"recommended": false,
"suspicious": {},
"style": {
"useBlockStatements": "off"
}
Expand All @@ -57,4 +58,4 @@
"bracketSpacing": true
}
}
}
}
Loading
Loading