├── .babelrc ├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── LICENSE ├── README.md ├── dione ├── __init__.py ├── admin.py ├── apps.py ├── models.py ├── src │ ├── components │ │ ├── Card.js │ │ ├── CardLists.js │ │ ├── CardTopUsers.js │ │ ├── Context.js │ │ ├── Emoji.js │ │ ├── EmojiFilter.js │ │ ├── FollowButton.js │ │ ├── HomePage.js │ │ ├── HomePosts.js │ │ ├── List.js │ │ ├── Menu.js │ │ ├── MenuProfile.js │ │ ├── PostService.js │ │ ├── Posts.js │ │ ├── PostsEmoji.js │ │ ├── Postv2.js │ │ ├── RePost.js │ │ ├── RouteHandler.js │ │ ├── Routes.js │ │ ├── SearchText.js │ │ ├── Submit.js │ │ ├── SubmitText.js │ │ ├── UserFeed.js │ │ ├── UserFollowing.js │ │ ├── UserProfile.js │ │ ├── UserService.js │ │ ├── View.js │ │ ├── Vote.js │ │ └── withAuth.js │ ├── index.js │ └── main.scss ├── static │ └── img │ │ ├── 1f603.svg │ │ ├── apple-touch-icon-114x114.png │ │ ├── apple-touch-icon-144x144.png │ │ ├── apple-touch-icon-57x57.png │ │ ├── apple-touch-icon-72x72.png │ │ ├── big.pegao-w.svg │ │ ├── big.pegao.svg │ │ ├── eye.svg │ │ ├── favicon-16x16.png │ │ ├── favicon-196x196.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon.ico │ │ ├── globe.svg │ │ ├── heart.svg │ │ ├── howtopost.gif │ │ ├── repegao.svg │ │ ├── repegar.svg │ │ ├── screen-first-list.png │ │ ├── screen-homepage.png │ │ ├── screen-submit.png │ │ ├── screen-wall.png │ │ ├── screen-wallv3.png │ │ ├── screen-wallv4.png │ │ └── share-alt.svg ├── templates │ ├── app │ │ └── index.html │ ├── articles │ │ ├── how-do-i-paste-a-link.html │ │ └── tour.html │ ├── index.html │ ├── privacy.html │ └── terms.html ├── tests.py ├── urls.py └── views.py ├── hiperion ├── __init__.py ├── admin.py ├── apps.py ├── models.py ├── pipeline.py ├── serializers.py ├── tests.py ├── urls.py └── views.py ├── manage.py ├── package-lock.json ├── package.json ├── requirements.txt ├── templates ├── base.html └── registration │ ├── logged_out.html │ └── login.html ├── voyager ├── __init__.py ├── registry.py ├── settings.py ├── sitemaps.py ├── urls.py └── wsgi.py ├── webpack-build-log.json └── webpack.config.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/preset-env", "@babel/preset-react" 4 | ], 5 | "plugins": [ 6 | "transform-class-properties" 7 | ] 8 | } -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | #github: zakokor 4 | patreon: zakokor 5 | ko_fi: zakokor 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Django # 2 | voyager/registry.py 3 | orbita 4 | dione/static/dist 5 | *.log 6 | *.pot 7 | *.pyc 8 | __pycache__ 9 | dione/migrations 10 | hiperion/migrations 11 | media 12 | sudo 13 | 14 | #node 15 | node_modules 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
75 | {data.username.charAt(0)} 76 |
77 | } 78 | 79 |{data.about}
98 |See who’s here
38 | 39 |49 | {hit.username} 50 |
51 | } 52 | 53 |8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
49 |Save your links, it's free and social.
17 |— Pegao helps you organize your links in lists or simply with emojis.
18 |19 | 20 | 21 | 22 | 23 | Sign Up Free 24 | 25 |
26 |27 | By using Pegao, you agree to our Privacy policy and Terms of service. 28 |
29 |42 | 43 | 44 | 45 | 46 | Sign Up Free 47 | 48 |
49 |50 | By using Pegao, you agree to our Privacy policy and Terms of service. 51 |
52 |Recent Links
65 |57 | {data.username.charAt(0)} 58 |
59 | } 60 | 61 |{message}
; 70 | //{formErrors['link']}
71 | return ( 72 |Start now to remember, organize and share the links that inspire you.
90 |91 | 92 | Paste your first link in the field above and click 93 | 94 | 95 | 96 | to save it 97 |
98 |Create your own lists — written with a / symbol — or just choose an emoji.
99 |110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 |
119 |Copy your link public profile https://pegao.co/@{currentUser.username} and share it with the world.
122 |123 | — or — 124 |
125 |126 | Take a tour 127 |
128 |{message}
: ( 59 | data.map(hit => 60 |63 | {hit.following.charAt(0)} 64 |
65 |From now on you can start to paste the links that inspire you and share them with your followers.
16 |Pasting a link is very simple, write in the address bar of the browser "pegao.co/" before the link you want to share and press "Paste".
17 |A list —written with a / symbol— is a curated group of links. You can create your own lists with your links to easily categorize them.
24 |Example of a post with a list:
30 |example.com
33 |Just write in the address bar of the browser "pegao.co/" before the link you want to remember and press "Paste".
12 |27 | — Say something. 28 |
29 |30 | — Something you liked. 31 |
32 |33 | — Capture your ideas. 34 |
35 |36 | — Bookmark your favorite pages. 37 |
38 |39 | — Remember a place. 40 |
41 |42 | — Something to buy. 43 |
44 |45 | — Your gift list. 46 |
47 |48 | — Save for later. 49 |
50 |51 | — And more... 52 |
53 |You can create your own lists — written with a / symbol — to easily categorize them.
57 |The Home — Find out what people are saving and sharing right now.
70 |Profile — This is your bookmark with your links.
71 |The easiest way to make lists of links on topics of your interest.
23 |26 | 27 | 28 | 29 | 30 | Start now 31 | 32 |
33 |34 | By using Pegao, you agree to our Privacy policy and Terms of service. 35 |
36 |Save links directly from your browser, from any device, without any installation.
49 |Create your own lists — written with a / symbol — or just choose an emoji.
50 |Get your public profile — and share it with the world.
51 |59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 |
68 |72 | Ideas are always welcome, please tweet me 73 | 74 | @zakokor 75 | 76 |
77 |Hi, it’s Gonzalo. I’m the solo developer of Pegao.co and it's currently running on a server that bills me $5 per month, but in the future I will need more than that. If you enjoy my work, please consider supporting what I do. Thank you.
79 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | Share
92 |
93 |
94 |
95 |
96 |
97 | Tweet
98 |
99 |
Effective date: July 3, 2019
10 |This page informs you of our policies regarding the collection, use, and disclosure of personal data when you use our Service and the choices you have associated with that data.
11 |We use your data to provide and improve the Service. By using the Service, you agree to the collection and use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, accessible from Pegao.co.
12 |“Service” is the Pegao.co website.
14 |“Personal Data” means data about a living individual who can be identified from those data (or from those and other information either in our possession or likely to come into our possession).
15 |“Usage Data” is data collected automatically either generated by the use of the Service or from the Service infrastructure itself (for example, the duration of a page visit).
16 |"Cookies" are small pieces of data stored on your device (computer or mobile device).
17 |"Data Controller" means the natural or legal person who (either alone or jointly or in common with other persons) determines the purposes for which and the manner in which any personal information are, or are to be, processed. For the purpose of this Privacy Policy, we are a Data Controller of your Personal Data.
18 |"Data Processor" (or "Service Provider") means any natural or legal person who processes the data on behalf of the Data Controller. We may use the services of various Service Providers in order to process your data more effectively.
19 |"Data Subject" is any living individual who is using our Service and is the subject of Personal Data.
20 |While using our Service, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you ("Personal Data"). Personally identifiable information may include, but is not limited to email addresses, first and last names, cookies, and usage data.
22 |We may use your Personal Data to contact you with newsletters, marketing or promotional materials and other information that may be of interest to you. You may opt out of receiving any, or all, of these communications from us by following the unsubscribe link or instructions provided in any email we send.
23 |We may also collect information how the Service is accessed and used ("Usage Data"). This Usage Data may include information such as your computer’s Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our Service that you visit, the time and date of your visit, the time spent on those pages, unique device identifiers and other diagnostic data.
24 |We use cookies and similar tracking technologies to track the activity on our Service and hold certain information.
25 |Cookies are files with small amount of data which may include an anonymous unique identifier. Cookies are sent to your browser from a website and stored on your device. Tracking technologies also used are beacons, tags, and scripts to collect and track information and to improve and analyze our Service.
26 |You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, you may not be able to use some portions of our Service.
27 |We use Session Cookies to operate our Service. We use Preference Cookies to remember your preferences and various settings. We use Security Cookies for security purposes.
28 |Pegao uses the collected data to provide and maintain our Service:
30 |If you are from the European Economic Area (EEA), Pegao legal basis for collecting and using the personal information described in this Privacy Policy depends on the Personal Data we collect and the specific context in which we collect it.
41 |Pegao may process your Personal Data because:
42 |We will retain your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use your Personal Data to the extent necessary to comply with our legal obligations, resolve disputes, and enforce our legal agreements and policies.
51 |We will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period of time, except when this data is used to strengthen the security or to improve the functionality of our Service, or we are legally obligated to retain this data for longer time periods.
52 |We store and process the information that we collect in the United States in accordance with this Privacy Policy. If you are located outside United States and choose to provide information to us, please note that we transfer the data, including Personal Data, to United States and process it there.
54 |Your consent to this Privacy Policy followed by your submission of such information represents your agreement to that transfer.
55 |We provide all of our users notice, choice, accountability, security, and access, and we limit the purpose for processing. We also provide our users a method of recourse and enforcement.
56 |We will take all steps reasonably necessary to ensure that your data is treated securely and in accordance with this Privacy Policy and no transfer of your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of your data and other personal information.
57 |If we are involved in a merger, acquisition or asset sale, your Personal Data may be transferred. We will provide notice before your Personal Data is transferred and becomes subject to a different Privacy Policy.
59 |Under certain circumstances, we may be required to disclose your Personal Data if required to do so by law or in response to valid requests by public authorities (e.g. a court or a government agency).
60 |We may disclose your Personal Data in the good faith belief that such action is necessary to:
61 |The security of your data is important to us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While we strive to use acceptable means to protect your Personal Data, we cannot guarantee its absolute security.
70 |If you are a resident of the European Economic Area (EEA), you have certain data protection rights. Pegao aims to take reasonable steps to allow you to correct, amend, delete, or limit the use of your Personal Data.
72 |If you wish to be informed what Personal Data we hold about you and if you want it to be removed from our systems, please contact us.
73 |In certain circumstances, you have the following data protection rights:
74 |The right to access, update or to delete the information we have on you. Whenever made possible, you can access, update or request deletion of your Personal Data directly within your account settings section. If you are unable to perform these actions yourself, please contact us to assist you.
75 |The right of rectification. You have the right to have your information rectified if that information is inaccurate or incomplete.
76 |The right to object. You have the right to object to our processing of your Personal Data.
77 |The right of restriction. You have the right to request that we restrict the processing of your personal information.
78 |The right to data portability. You have the right to be provided with a copy of the information we have on you in a structured, machine-readable and commonly used format.
79 |The right to withdraw consent. You also have the right to withdraw your consent at any time where we relied on your consent to process your personal information. Please note that we may ask you to verify your identity before responding to such requests.
80 |You have the right to complain to a Data Protection Authority about our collection and use of your Personal Data. For more information, please contact your local data protection authority in the European Economic Area (EEA).
81 |If you have concerns about the way Pegao is handling your Personal Data, please let us know immediately. We want to help. You may email us directly at gonza@pegao.co with the subject line “Privacy Concerns.” We will respond promptly — within 45 days at the latest.
82 |In the unlikely event that a dispute arises between you and Pegao regarding our handling of your Personal Data, we will do our best to resolve it.
84 |Under certain limited circumstances, European Union individuals may invoke binding Privacy Shield arbitration as a last resort if all other forms of dispute resolution have been unsuccessful. To learn more about this method of resolution and its availability to you, please read more about Privacy Shield. Arbitration is not mandatory; it is a tool you can use if you choose to.
86 |We may employ third party companies and individuals to facilitate our Service ("Service Providers"), to provide the Service on our behalf, to perform Service-related services or to assist us in analyzing how our Service is used.
88 |These third parties have access to your Personal Data only to perform these tasks on our behalf and are obligated not to disclose or use it for any other purpose. We may use third-party Service Providers to monitor and analyze the use of our Service.
89 |We use Google Analytics, a web analytics service offered by Google that tracks and reports website traffic. Google uses the data collected to track and monitor the use of our Service. This data is shared with other Google services. Google may use the collected data to contextualize and personalize the ads of its own advertising network.
90 |You can opt-out of having made your activity on the Service available to Google Analytics by installing the Google Analytics opt-out browser add- on. The add-on prevents the Google Analytics JavaScript (ga.js, analytics.js, and dc.js) from sharing information with Google Analytics about visits activity.
91 |We may provide paid products and/or services within the Service (e.g. payment processors).
92 |We will not store or collect your payment card details. That information is provided directly to our third-party payment processors whose use of your personal information is governed by their Privacy Policy.
93 |Our Service may contain links to other sites that are not operated by us. If you click on a third party link, you will be directed to that third party’s site. We strongly advise you to review the Privacy Policy of every site you visit.
95 |We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.
96 |Our Service does not address anyone under the age of 13 (“Children”). If you’re a child under the age of 13, you may not have an account on Pegao.
98 |We do not knowingly collect personally identifiable information from anyone under the age of 13. If you are a parent or guardian and you are aware that your Children has provided us with Personal Data, please contact us. If we become aware that we have collected Personal Data from children without verification of parental consent, we take steps to remove that information from our servers.
99 |We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.
101 |For material changes to this Privacy Policy, we will notify you prior to the change taking effect.
102 |You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.
103 |If you have any questions about this Privacy Policy, please contact us by email: gonza@pegao.co
105 |Last updated July 3, 2019
10 |These terms of service ("Terms") apply to your access and use of Pegao.co (the "Service"). Please read them carefully.
11 |If you access or use the Service, it means you agree to be bound by all of the terms below. So, before you use the Service, please read all of the terms. If you don’t agree to all of the terms below, please do not use the Service. Also, if a term does not make sense to you, please let us know by e-mailing gonza@pegao.co.
13 |We reserve the right to modify these Terms at any time. For instance, we may need to change these Terms if we come out with a new feature or for some other reason.
15 |Whenever we make changes to these Terms, the changes are effective 2 days after we post such revised Terms (indicated by revising the date at the top of these Terms) or upon your acceptance if we provide a mechanism for your immediate acceptance of the revised Terms (such as a click-through confirmation or acceptance button). It is your responsibility to check Pegao for changes to these Terms.
16 |If you continue to use the Service after the revised Terms go into effect, then you have accepted the changes to these Terms.
17 |For information about how we collect and use information about users of the Service, please check out our privacy policy available at https://pegao.co/privacy.html.
19 |From time to time, we may provide you with links to third party websites or services that we do not own or control. Your use of the Service may also include the use of applications that are developed or owned by a third party. Your use of such third party applications, websites, and services is governed by that party’s own terms of service or privacy policies. We encourage you to read the terms and conditions and privacy policy of any third party application, website or service that you visit or use.
21 |When you create an account or use another service to log in to the Service, you agree to maintain the security of your password and accept all risks of unauthorized access to any data or other information you provide to the Service. If you discover or suspect any Service security breaches, please let us know as soon as possible.
23 |Our Service allows you and other users to post, link and otherwise make available content. You are responsible for the content that you make available to the Service, including its legality, reliability, and appropriateness.
25 |When you post, link or otherwise make available content to the Service, you grant us the right and license to use, reproduce, modify, publicly perform, publicly display and distribute your content on or through the Service. We may format your content for display throughout the Service, but we will not edit or revise the substance of your content itself.
26 |Aside from our limited right to your content, you retain all of your rights to the content you post, link and otherwise make available on or through the Service.
27 |You can remove the content that you posted by deleting it. Once you delete your content, it will not appear on the Service, but copies of your deleted content may remain in our system or backups for some period of time.
28 |You may not post, link and otherwise make available on or through the Service any of the following:
29 |Also, you agree that you will not do any of the following in connection with the Service or other users:
38 |You may create a hyperlink to the Service. But, you may not use, frame or utilize framing techniques to enclose any of our trademarks, logos or other proprietary information without our express written consent.
47 |When you leave the Service, you should be aware that these Terms and our policies no longer govern.
48 |If there is any content on the Service from you and others, we don’t review, verify or authenticate it, and it may include inaccuracies or false information. We make no representations, warranties, or guarantees relating to the quality, suitability, truth, accuracy or completeness of any content contained in the Service. You acknowledge sole responsibility for and assume all risk arising from your use of or reliance on any content.
49 |THE SERVICE AND ANY OTHER SERVICE AND CONTENT INCLUDED ON OR OTHERWISE MADE AVAILABLE TO YOU THROUGH THE SERVICE ARE PROVIDED TO YOU ON AN AS IS OR AS AVAILABLE BASIS WITHOUT ANY REPRESENTATIONS OR WARRANTIES OF ANY KIND. WE DISCLAIM ANY AND ALL WARRANTIES AND REPRESENTATIONS (EXPRESS OR IMPLIED, ORAL OR WRITTEN) WITH RESPECT TO THE SERVICE AND CONTENT INCLUDED ON OR OTHERWISE MADE AVAILABLE TO YOU THROUGH THE SERVICE WHETHER ALLEGED TO ARISE BY OPERATION OF LAW, BY REASON OF CUSTOM OR USAGE IN THE TRADE, BY COURSE OF DEALING OR OTHERWISE.
51 |You agree to defend, indemnify and hold us harmless from and against any and all costs, damages, liabilities, and expenses (including attorneys’ fees, costs, penalties, interest and disbursements) we incur in relation to, arising from, or for the purpose of avoiding, any claim or demand from a third party relating to your use of the Service or the use of the Service by any person using your account, including any claim that your use of the Service violates any applicable law or regulation, or the rights of any third party, and/or your violation of these Terms.
52 |We take intellectual property rights seriously. In accordance with the Digital Millennium Copyright Act ("DMCA") and other applicable law, we have adopted a policy of terminating, in appropriate circumstances and, at our sole discretion, access to the service for users who are deemed to be repeat infringers.
54 |The validity of these Terms and the rights, obligations, and relations of the parties under these Terms will be construed and determined under and in accordance with the laws of the Colombia country, without regard to conflicts of law principles.
56 |You expressly agree that exclusive jurisdiction for any dispute with the Service or relating to your use of it, resides in the courts of the Delaware state and you further agree and expressly consent to the exercise of personal jurisdiction in the courts of the Colombia country in connection with any such dispute including any claim involving Service. You further agree that you and Service will not commence against the other a class action, class arbitration or other representative action or proceeding.
58 |If you breach any of these Terms, we have the right to suspend or disable your access to or use of the Service.
60 |We may assign or delegate these Terms of Service and/or the Privacy Policy, in whole or in part, to any person or entity at any time with or without your consent, including the license grant in the "Your Content & Conduct" section. You may not assign or delegate any rights or obligations under the Terms of Service or Privacy Policy without our prior written consent, and any unauthorized assignment and delegation by you is void.
62 |These Terms constitute the entire agreement regarding the use of the Service, supersedes any prior agreements relating to your use of the Service.
64 |Please let us know what you think of the Service, these Terms and, in general, Pegao. When you provide us with any feedback, comments or suggestions about the Service, these Terms and, in general, Pegao, you irrevocably assign to us all of your right, title and interest in and to your feedback, comments and suggestions.
66 |Questions or comments about the Service may be directed to us at the email address gonza@pegao.co.
68 |8 | 9 | 10 | 11 | 12 | Log in with Google 13 | 14 |
15 |16 | By using Pegao, you agree to our Privacy policy and Terms of service. 17 |
18 |Save your links, it's free and social.
9 |11 | 12 | 13 | 14 | 15 | Log in with Google 16 | 17 |
18 |19 | By using Pegao, you agree to our Privacy policy and Terms of service. 20 |
21 |