Skip to content

Commit f5df745

Browse files
committed
feat(website): initial port of bigcapital website as starting point
1 parent 831f446 commit f5df745

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+1885
-0
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"dev": "lerna run dev",
66
"build": "lerna run build",
77
"dev:webapp": "lerna run dev --scope \"@bigcapital/webapp\"",
8+
"dev:website": "lerna run dev --scope \"@bigcapital/website\"",
89
"build:webapp": "lerna run build --scope \"@bigcapital/webapp\"",
910
"dev:server": "lerna run dev --scope \"@bigcapital/server\"",
1011
"build:server": "lerna run build --scope \"@bigcapital/server\"",

packages/website/.eslintrc.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"extends": "next/core-web-vitals"
3+
}

packages/website/.gitignore

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2+
3+
# dependencies
4+
/node_modules
5+
/.pnp
6+
.pnp.js
7+
.yarn/install-state.gz
8+
9+
# testing
10+
/coverage
11+
12+
# next.js
13+
/.next/
14+
/out/
15+
16+
# production
17+
/build
18+
19+
# misc
20+
.DS_Store
21+
*.pem
22+
23+
# debug
24+
npm-debug.log*
25+
yarn-debug.log*
26+
yarn-error.log*
27+
28+
# local env files
29+
.env*.local
30+
31+
# vercel
32+
.vercel
33+
34+
# typescript
35+
*.tsbuildinfo
36+
next-env.d.ts

packages/website/README.md

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
2+
3+
## Getting Started
4+
5+
First, run the development server:
6+
7+
```bash
8+
npm run dev
9+
# or
10+
yarn dev
11+
# or
12+
pnpm dev
13+
# or
14+
bun dev
15+
```
16+
17+
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
18+
19+
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
20+
21+
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
22+
23+
## Learn More
24+
25+
To learn more about Next.js, take a look at the following resources:
26+
27+
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28+
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
29+
30+
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
31+
32+
## Deploy on Vercel
33+
34+
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
35+
36+
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.

packages/website/next.config.mjs

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/** @type {import('next').NextConfig} */
2+
const nextConfig = {
3+
images: {
4+
domains: ['gravatar.com'],
5+
},
6+
};
7+
8+
export default nextConfig;

packages/website/package.json

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"name": "@bigcapital/website",
3+
"version": "0.1.0",
4+
"private": true,
5+
"scripts": {
6+
"dev": "next dev",
7+
"build": "next build",
8+
"start": "next start",
9+
"lint": "next lint"
10+
},
11+
"dependencies": {
12+
"@material-tailwind/react": "^2.1.9",
13+
"classnames": "^2.5.1",
14+
"dayjs": "^1.11.10",
15+
"gravatar-url": "^4.0.1",
16+
"gray-matter": "^4.0.3",
17+
"next": "14.2.2",
18+
"react": "^18",
19+
"react-dom": "^18",
20+
"react-wow": "^1.0.0",
21+
"remark": "^15.0.1",
22+
"remark-html": "^16.0.1"
23+
},
24+
"devDependencies": {
25+
"@types/node": "^20",
26+
"@types/react": "^18",
27+
"@types/react-dom": "^18",
28+
"@types/react-wow": "^1.0.6",
29+
"eslint": "^8",
30+
"eslint-config-next": "14.2.2",
31+
"postcss": "^8",
32+
"tailwindcss": "^3.4.1",
33+
"typescript": "^5"
34+
}
35+
}

packages/website/postcss.config.mjs

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/** @type {import('postcss-load-config').Config} */
2+
const config = {
3+
plugins: {
4+
tailwindcss: {},
5+
},
6+
};
7+
8+
export default config;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
title: 'The Early Adopters Plan'
3+
subtitle: 'Join the Bigcapital early adopter plan to shape the future of accounting!'
4+
date: '2024-05-06'
5+
author: Ahmed Bouhuolia
6+
authorEmail: a.bouhuolia@gmail.com
7+
picture: /early-adopter-plan.png
8+
---
9+
10+
A few days ago we launched the **Bigcapital Cloud** service, and the early adopter plan to attract the first group of beta users who are willing to collaborate and refine the product. As we want to be a highly community-driven product, we’re looking for 200 early adopters to get more deep feedback on what we built and feature requests to reach to the product can satisfy the market, although we’ve built all the major features and reports that any accountant or business owner needs but we highly believe in tiny details, little tweaks or new report can make user’s life easier.
11+
12+
Being an early adopter has no specific requirement like being active or contributor to the codebase or giving feedback constantly, you can do that also by using the Bigcapital CE self-hosted, it’s free and has no obligation, but we believe since you subscribed early you’re part of early adopter users and your feedback and features requests will be always in priority.
13+
14+
### The Early Adopter Plan Includes
15+
- You’ll get access to all features of all plans.
16+
- You’ll get the ability to create other 3 organization accounts under the same email.
17+
- Priority support on Discord and email.
18+
- It's a **$29 one-time** payment for a year.
19+
20+
*The early adopter will be replaced with another monthly plan without full-features once the 200 seats run out but the subscripted users will reserve their privileges and support for a year.*
21+
22+
### Community-Driven Development
23+
24+
As we continue to develop Bigcapital, we cannot breathe without your feedback and ideas. Here are three ways you can share your thoughts with us:
25+
26+
- Join on [Discord Server](https://discord.com/invite/c8nPBJafeb).
27+
- Email use directly: [ahmed@bigcapital.ly](mail:ahmed@bigcapital.ly)
28+
- [Schedule a 30-minute call with our team.](https://cal.com/ahmed-bouhuolia-ekk3ph/30min)

packages/website/public/blur-2.jpeg

239 KB
Loading
103 KB
Loading
73.3 KB
Binary file not shown.

packages/website/public/next.svg

+1
Loading
Loading
82.1 KB
Loading
Loading
83.5 KB
Loading
50.7 KB
Loading
78.6 KB
Loading
Loading
70.4 KB
Loading
65.1 KB
Loading
85.9 KB
Loading

packages/website/public/vercel.svg

+1
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
interface BlogLayoutProps {
2+
children: React.ReactNode;
3+
}
4+
5+
export default function PostLayout({ children }: BlogLayoutProps) {
6+
return (
7+
<div
8+
className={'space-y-8 pb-8 pt-4 md:py-16 mx-auto w-full max-w-[750px]'}
9+
>
10+
{children}
11+
</div>
12+
);
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
2+
.content p{
3+
@apply mb-4;
4+
}
5+
6+
.content ul {
7+
@apply mb-4;
8+
list-style: disc;
9+
margin-left: 1.2rem;
10+
}
11+
12+
.content ul li{
13+
@apply mb-2 mt-2;
14+
}
15+
16+
.content h1,
17+
.content h2,
18+
.content h3,
19+
.content h4,
20+
.content h5,
21+
.content h6 {
22+
@apply font-bold mt-8 mb-6 text-[#252c53];
23+
letter-spacing: -0.5px;
24+
}
25+
26+
.content h1{
27+
@apply text-4xl;
28+
}
29+
30+
.content h2 {
31+
@apply text-3xl
32+
}
33+
34+
.content h3 {
35+
@apply text-2xl
36+
}
37+
38+
.content a{
39+
text-decoration: underline;
40+
color: #375DEE;
41+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import { getPostData } from '@/lib/posts';
2+
import Image from 'next/image';
3+
import './page.css';
4+
5+
export default async function Page() {
6+
const postData = await getPostData('ssg-ssr');
7+
8+
return (
9+
<div>
10+
<div
11+
className={'text-[#79818b] text-sm animate__animated animate__fadeIn'}
12+
>
13+
<time dateTime={postData.date}>{postData.formattedDate}</time>
14+
</div>
15+
16+
<div>
17+
<h1
18+
className={
19+
'font-extrabold font-styling font-display mt-1.5 mb-2.5 text-[2rem] md:text-[2.2rem] tracking-tight leading-[120%] text-[#242c51] animate__animated animate__fadeIn'
20+
}
21+
>
22+
{postData.title}
23+
</h1>
24+
<p
25+
className={
26+
'animate__animated animate__fadeIn text-[1.2rem] text-[#6b7280]'
27+
}
28+
>
29+
{postData.subtitle}
30+
</p>
31+
32+
<div className="animate__animated animate__fadeIn mx-auto mb-6 mt-4 flex flex-row items-center gap-2">
33+
<span className="relative block flex-shrink-0 overflow-hidden rounded-full">
34+
<Image
35+
alt={postData.author}
36+
width="40"
37+
height="40"
38+
src={postData.avatar}
39+
/>
40+
</span>
41+
42+
<div className="flex flex-col gap-[2px]">
43+
<span className="sans text-sm leading-[1.6] text-slate-11 font-normal">
44+
{postData.author}
45+
</span>
46+
47+
<span className={'text-xs muted text-[#6b7280]'}>
48+
CEO, Founder
49+
</span>
50+
</div>
51+
</div>
52+
</div>
53+
54+
<div className={'animate__animated animate__fadeIn mb-6'}>
55+
<Image
56+
src={postData.picture}
57+
height={700}
58+
width={1050}
59+
className={
60+
'w-full border border-darkblue-50 object-cover rounded lg:rounded-lg'
61+
}
62+
alt=""
63+
/>
64+
</div>
65+
66+
<div
67+
className={
68+
'content mx-auto text-darkblue-800 leading-relaxed animate__animated animate__fadeIn'
69+
}
70+
dangerouslySetInnerHTML={{ __html: postData.contentHtml }}
71+
></div>
72+
</div>
73+
);
74+
}
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Metadata } from 'next';
2+
3+
interface BlogLayoutProps {
4+
children: React.ReactNode;
5+
}
6+
7+
export const metadata: Metadata = {
8+
title: 'Bigcapital | Blog',
9+
};
10+
11+
export default function BlogLayout({ children }: BlogLayoutProps) {
12+
return <div className={'container mx-auto px-4 pt-9 pb-20'}>{children}</div>;
13+
}

0 commit comments

Comments
 (0)