An open source clone the very popular ycdb to encourage similary investment visibility and anlaysis for other investment organizations or, in our case, whole countries. SEO optimized, performant, opinionated React/Next/AntDesign/Firebase template app with fast loading landing page with lazy-loading of Firebase data using a simple provider class. Demo available here.
With code and inspiration from Sam Lolla Firefly and react-firestore, with design support from ManyPixkes.
Based on create-next-app and initially built using with-firebase-hosting
npx create-next-app --example with-firebase-hosting with-firebase-hosting-appDownload manually
Download the example:
curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/with-firebase-hosting
cd with-firebase-hostingSet up firebase
- install Firebase Tools:
npm i -g firebase-tools - create a project through the firebase web console
- grab the projects ID from the web consoles URL:
https://console.firebase.google.com/project/<projectId> - update the
.firebasercdefault project ID to the newly created project - login to the Firebase CLI tool with
firebase login
Install Project
npm installnpm run devnpm run serve
npm run deploynpm run cleanBitbucket repo
Clone from Bitbucket repo
git remote add bitbucket git@bitbucket.org:mobileflowllc/jpvcdb.git
git push -u bitbucket master
Using Firebase hosting with NextJS generated SSR design files. This should allow for easier setup (add new pages via /pages subdirectory) and better SEO (using next-seo to configure, but also SSR generates 'static' home/blog/faq pages as needed).
Ant Design themeing for both landing page and application controls. Use the Ant Designsummary page and style sheet guide to customize the look & feel.
The directory structure in the src/app folder is as follows:
|____pages
| |____about.js
| |____index.js
| |____login.js
| |____dashboard.js
|____credentials
| |____client.js
|____landing
| |____Home.js
| |____Header.js
| |____Banner.js
| |____Page1.js
| |____static
| | |____style.js
| | |____default.less
| | |____home.less
| | |____footer.less
| | |____header.less
| | |____responsive.less
|____components
| |____App.js
| |____Header.js
| |____Home.js
| |____Login.js
|____asserts
| |____styles.less
| |____antd-custom.less
|____static
| |____logo-word-white.png
|____lib
| |____redirect.js
| |____auth.js
| |____firebaseManager.js
|____next.config.js
|____next-seo.config.js
|____scriptsThe Firebase configuration is contained in credentials/client.js and is used the by the firebaseManager.js singleton to manage authorization, etc.
The home / landing page is index.js by default, and loads an Ant Design stylized landing page from landing/Home.js with custom less styling from within the landing/static directory.
The application page is dashboard and contains custom application components from the components directory. Current functionality is limited to allowing admins to create and edit company data. Extensive use of Firebase admin scripts is made to migrate and shape data. See the scripts directory.
Both the application and landing page use the @zeit/next-less loading methods as specified within next.config.js file, which loads the default Ant Design style sheets and applies overrides using the files contained within asserts/antd-custom.less.
- Clean up admin CRUD functions, issues with AntD image uploader component within forms
- Add i18next language support using HOC for AntD
- Populate data with Japanese startup cohort data
